﻿<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>WinWaitActive / WinWaitNotActive</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../css/commands.css" rel="stylesheet" type="text/css">
<link href="../css/print.css" rel="stylesheet" type="text/css" media="print">
</head>
<body>

<h1>WinWaitActive / WinWaitNotActive</h1>

<p>等待匹配指定条件的窗口处于激活或未激活状态。</p>

<p class="CommandSyntax">WinWaitActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]<br>
    WinWaitNotActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText]</p>
<h3>参数 </h3>
<table border="1" width="100%" cellspacing="0" cellpadding="3" bordercolor="#C0C0C0">
  <tr> 
    <td width="15%">WinTitle</td>
    <td width="85%">目标窗口的标题或标题中的部分文字（匹配模式由 <a href="SetTitleMatchMode.htm">SetTitleMatchMode</a> 决定）。如果省略其它 3 个窗口参数，默认目标是 <a href="../LastFoundWindow.htm">上一次匹配窗口</a> 。要用窗口的 class 名进行匹配，使用 <em>ahk_class 精确 class 名</em>（Window Spy 中可以显示 class 名）。要用窗口的 <a href="Process.htm">进程标识符（PID）</a>进行匹配，使用 <em>ahk_pid %PID变量%</em> 。要用 <a href="GroupAdd.htm">窗口组</a> ，使用 <em>ahk_group 组名</em> 。要用窗口的 <a href="WinGet.htm">唯一 ID</a> 进行匹配，使用 <em>ahk_id %ID变量%</em> 。要减小检测范围，使用 <a href="../LastFoundWindow.htm#multi">多重条件</a> ，例如：<em>My File.txt ahk_class Notepad</em></td>
  </tr>
  <tr> 
    <td>WinText</td>
    <td>如果使用这个参数，则它应该是目标窗口中某个文本元素的子字符串（在 Window Spy 中会显示出窗口中的文本元素）。隐藏文本只有在 <a href="DetectHiddenText.htm">DetectHiddenText</a> 设置为 ON 的时候才能检测到。</td>
  </tr>
  <tr>
    <td>Seconds</td>
    <td>超时时间。超时后将不再等待并且设置 <a href="../misc/ErrorLevel.htm">ErrorLevel/错误等级</a> 为 1 。留空表示无限等待。指定 0 等同于 0.5 。这个参数可以一个 <a href="../Variables.htm#Expressions">表达式</a> 。</td>
  </tr>
  <tr>
    <td>ExcludeTitle</td>
    <td>标题中包含该参数指定的文字的窗口将被除外。</td>
  </tr>
  <tr>
    <td>ExcludeText</td>
    <td>文本元素中包含该参数指定的文字的窗口将被除外。</td>
  </tr>
</table>

<h3>ErrorLevel</h3>
<p>超时以后 <a href="../misc/ErrorLevel.htm">ErrorLevel/错误等级</a> 为 1 ，否则为 0 。</p>
<h3>注意</h3>
<p>如果一个匹配窗口的状态符合命令要求，命令会立即设置 <a href="../misc/ErrorLevel.htm">ErrorLevel/错误等级</a> 为 0 ，然后让脚本继续执行，而不必再等待 <em>Seconds</em> 参数中指定的时间。</p>
<p>如果命令开始执行的时候匹配窗口处于激活状态，WinWaitActive 和 WinWaitNotActive 都会更新 <a href="../LastFoundWindow.htm">上一次匹配的窗口</a> 。另外，匹配窗口在超时时间以内激活，WinWaitActive 也会更新上一次匹配窗口。</p>
<p>当该命令处于等待状态的时候，仍然可以通过 <a href="../Hotkeys.htm">快捷键</a> ，<a href="Menu.htm">自定义菜单</a> ，或 <a href="SetTimer.htm">定时器</a> 来启动新的 <a href="../misc/Threads.htm">线程</a> 。</p>
<p>如果其它的 <a href="../misc/Threads.htm">线程</a> 在该命令等待的时候改变了参数中所使用到的变量的值，该命令会无视这些改变 —— 它仍然会使用这些变量在开始等待的时候的值。</p>
<p>窗口的标题和窗口中的文字是大小写敏感的。要检测隐藏窗口，必须打开 <a href="DetectHiddenWindows.htm">DetectHiddenWindows</a> 。</p>
<h3>相关命令</h3>
<p><a href="WinWait.htm">WinWait</a>, <a href="WinWaitClose.htm">WinWaitClose</a>, <a href="IfWinExist.htm">IfWinExist</a>, <a href="IfWinActive.htm">IfWinActive</a>, <a href="SetTitleMatchMode.htm">SetTitleMatchMode</a>, <a href="DetectHiddenWindows.htm">DetectHiddenWindows</a></p>
<h3>示例</h3>
<pre class="NoIndent">Run, notepad.exe
WinWaitActive, Untitled - Notepad, , 2
if ErrorLevel
{
    MsgBox, WinWait timed out.
    return
}
else
    WinMinimize  <em>; 最小化 WinWaitActive 找到的窗口。</em></pre>

</body>
</html>
